在上一篇中大致介紹如何去k8s部署的一個服務,在今天的要來介紹一下Namespace,以及如何確保Container的運行狀態。
Namespace是一個用來做在叢集內部的隔離,是一個抽象的cluster。簡單的說就是將單一的k8s cluster劃分出不同的virtual cluster,每個Namespace彼此是獨立運作,而且不會互相干擾。Namespace如果沒有特別設定,所有建立的pod都會使用default
這個Namespace。
Namespace的特點:
建立namespace
➜ ~ kubectl create namespace dev-space
namespace/dev-space created
查看namespace
➜ ~ kubectl get namespace
NAME STATUS AGE
default Active 29d
dev-space Active 42s
kube-node-lease Active 29d
kube-public Active 29d
kube-system Active 29d
刪除namespace
➜ ~ kubectl delete namespace dev-space
namespace "dev-space" deleted
在k8s中提供了二種類型Probe的機制,讓我們用於容器的健康檢查:
Probe支援以下三種檢查方法
exec:
command:
- cat
- /tmp/health
tcpSocket:
port: 8080
httpGet:
path: /healthz
port: 8080
完整範例
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-redis
namespace: default
spec:
selector:
matchLabels:
app: my-redis
replicas: 1 # 期待建立pod的数量
template:
metadata:
labels:
app: my-redis # 設定label資訊
spec:
containers:
- name: my-redis
image: redis #映像檔
imagePullPolicy: Always
ports:
- containerPort: 6379
livenessProbe:
tcpSocket:
port: 6379
查看pod詳細狀況
➜ ~ kubectl describe pod my-redis-79fcfc6889-5rm6j
有關於k8s更詳細的介紹,有興趣的人可以自行去參考官網學習。